<?PHP
////////////////////////////////////////////////////////////////////////////
//                                                                        //
// NOTICE OF COPYRIGHT                                                    //
//                                                                        //
// Dean`s Office for Moodle                                               //
// Электронный деканат                                                    //
// <http://deansoffice.ru/>                                               //
//                                                                        //
// Copyright (C) 2008-2999  Alex Djachenko (Алексей Дьяченко)             //
// alex-pub@my-site.ru                                                    //
// This program is free software: you can redistribute it and/or modify   //
// it under the terms of the GNU General Public License as published by   //
// the Free Software Foundation, either version 3 of the Licensen.        //
//                                                                        //
// This program is distributed in the hope that it will be useful,        //
// but WITHOUT ANY WARRANTY; without even the implied warranty of         //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          //
// GNU General Public License for more details.                           //
//                                                                        //
// You should have received a copy of the GNU General Public License      //
// along with this program.  If not, see <http://www.gnu.org/licenses/>.  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// Подключаем библиотеки
require_once('lib.php');

$DOF->modlib('nvg')->print_header(NVG_MODE_PORTAL);
$errormsg = '<font color="red"> is ERROR</font>';
$truemsg = ' is ok';
echo "<h1>class.ama_users</h1>";
echo "<br />Проверка корректности email ";
$q = array(
            array('email'=>'qwe','result'=>false),
            array('email'=>'qwe@qwe','result'=>false),
            array('email'=>'qwe@qwe@qwe.ru','result'=>false),
            array('email'=>'qwe@mail.ru','result'=>true)
           );
$res = $truemsg;
foreach ( $q as $v )
{
//    print_object($v['person']);
    $fres = $DOF->modlib('ama')->user(false)->validate_email($v['email']);
    if ( $fres != $v['result'] )
    {//предполагаемый и реальный результат работы не совпали
        $res = $errormsg;
        //break;
    }
//    print_object($fres);
//    print_object($v['result']);
}
print $res;
echo "<br />Проверка корректности username ";
$z = array(
            array('username'=>'qwe-qwe','result'=>true),
            array('username'=>'qwe_qwe','result'=>true),
            array('username'=>'qwe.qwe','result'=>true),
            array('username'=>'qwe#qwe','result'=>false),
            array('username'=>'qwe@mail.ru','result'=>true)
           );
$res = $truemsg;
foreach ( $z as $v )
{
//    print_object($v['person']);
    $fres = $DOF->modlib('ama')->user(false)->validate_username($v['username']);
    if ( $fres != $v['result'] )
    {//предполагаемый и реальный результат работы не совпали
        $res = $errormsg;
        print_object($v['username']);
        var_dump($v['result']);
        //break;
    }

}
print $res;

echo "<h2>Проверка уникальности пользователя</h2>";
GLOBAL $USER;
$obj = new object();
$obj->username = $USER->username; 
echo "<br/>"."{$obj->username} ";
if ($res=$DOF->modlib('ama')->user(false)->is_unique($obj)===false)
{
	echo " [ok]";
}else
{
	var_dump();
}
$obj->email = $USER->email;
echo "<br/>"."{$obj->username} {$obj->email} ";
if ($res=$DOF->modlib('ama')->user(false)->is_unique($obj)===false)
{
	echo " [ok]";
}else
{
	var_dump($res);
}
echo "<br/>"."{$obj->username} {$obj->email} id<>{$USER->id} ";
if ($res=$DOF->modlib('ama')->user($USER->id)->is_unique($obj)===true)
{
	echo " [ok]";
}else
{
	var_dump($res);
}
$obj->id = $USER->id;
echo "<br/>"."{$obj->username} {$obj->email} id<>{$obj->id} ";
if ($res=$DOF->modlib('ama')->user(false)->is_unique($obj)===true)
{
	echo " [ok]";
}else
{
	var_dump($res);
}
unset($obj->username);
unset($obj->id);
echo "<br/>"."{$obj->email} ";
if ($res=$DOF->modlib('ama')->user(false)->is_unique($obj)===false)
{
	echo " [ok]";
}else
{
	var_dump($res);
}
echo "<h2>Создание и обновление пользователя</h2>";
$obj = $DOF->modlib('ama')->user()->get();
echo "<br />id={$obj->id} username={$obj->username} email={$obj->email}";
echo "<br />Проверка создания ";
if ($DOF->modlib('ama')->user($obj->id)->is_exists()===true)
{
    echo "[ok]";
}
echo "<br />Проверка обновления ";
$obj2=new object();
$obj2->username='imatest';
$obj2->email="{$obj->username}@localhost";
if ($DOF->modlib('ama')->user($obj->id)->update($obj2))
{
    echo "[ok]";
}
echo "<br />Проверка переобновления ";
$obj2=new object();
$obj2->username='imatest';
$obj2->email="{$obj->username}@localhost";
if ($DOF->modlib('ama')->user($obj->id)->update($obj2))
{
    echo "[ok]";
}
echo "<br />Проверка неуникального переобновления ";
$obj2=new object();
$obj2->username=$USER->username;
$obj2->email="{$obj->username}@localhost";
if ($DOF->modlib('ama')->user($obj->id)->update($obj2))
{
    echo "[ok]";
}
$obj2 = $DOF->modlib('ama')->user($obj->id)->get();
echo "<br />id={$obj2->id} username={$obj2->username} email={$obj2->email}";
echo "<br />Удаление ";
if ($DOF->modlib('ama')->user($obj->id)->delete()===true)
{
    echo "[ok]";
}
echo "<br />Проверка удаление ";
if ($DOF->modlib('ama')->user(false)->is_exists($obj->id)===false)
{
    echo "[ok]";
}
echo '<br>'.$DOF->modlib('ama')->user(false)->get_lastaccess(1);

echo '<br>'.$DOF->modlib('ama')->user(false)->count_login(446);

echo "<br />Генератор паролей ";
echo '<br>Пароль Moodle: '.$DOF->modlib('ama')->user(false)->generate_password_moodle();
echo '<br>Произносимый пароль: '.$DOF->modlib('ama')->user(false)->generate_password_pronounceable();
echo '<br>Список курсов на которые подписан пользователь: ';
print_object($DOF->modlib('ama')->user(3)->get_courses(3));

echo '<br><br><br><h1>class.ama_course</h1><br />Количество непроверенных заданий в курсе 44: ';
var_dump($DOF->modlib('ama')->course(44)->count_notgraded_elements(null));
echo '<br /><br />Количество выполненных заданий в курсе (включая попытки теста): ';
var_dump($DOF->modlib('ama')->course(44)->count_submitted_elements(3));
echo '<br /><br />Количество проверенных учителем заданий в курсе: ';
var_dump($DOF->modlib('ama')->course(44)->count_graded_elements(1));


$DOF->modlib('nvg')->print_footer(NVG_MODE_PORTAL);



?>